﻿/*
傻瓜A-B 
Time Limit:1000MS  Memory Limit:32768K


Description:
傻瓜A-B的规则:
 1. 傻瓜没有负数和小数的概念,而且傻瓜认为,A和B不管多大都可以相减. 
 2. 傻瓜认为两个数相减,得数一定是比较大的数减去比较小的那个数的差. 
 3. 尽管傻瓜很傻,但也知道A的个位和B的个位进行运算,A的十位和B的十位进行运算…… 
 4. 傻瓜毕竟是傻瓜,他觉得A和B相减,一定是每位的数字分别相减,且是大的减小的.
 5. 出题目的是傻瓜.题目描述得那么罗嗦,所以给个例子. 
 例: 54271 - 623 ----- 54452 再例: 54 -1562 ----- 1512
 6.这样总该清楚了吧~~不过注意边界情况哟~~大家尽管做吧~~不会超时的~~ 

Input:
输入数据含有一系列数字,第一行是N,说明接下来有N组数据.接下来是n行的A和B.( 1<=N<=100,0<=A,B<=10^100) 
Output:
每组数据都要输出一个傻瓜A-B的结果,每行末有回车. 
Sample Input:
2
54271 623
54 1562
Sample Output:
54452
1512
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
namespace ctb
{
	void fool_sub(const string& a, const string& b)
	{
		string::size_type len_a = a. length(), len_b = b.length();
		if (len_a < len_b)
		{
			fool_sub(b, a);
			return ;
		}

		string diff(a);
		string::size_type offset = len_a - len_b;
		string::iterator it_d = diff.begin() + offset;
		for (string::const_iterator it_b = b.begin();
			it_b != b.end();
			++it_d, ++it_b)
		{
			if (*it_d > *it_b)
				*it_d = '0' + *it_d - *it_b;
			else
				*it_d = '0' + *it_b - *it_d;
		}	
		string::size_type pos = diff.find_first_not_of('0');
		if (pos == string::npos)
			cout << "0" << endl;
		else
			cout << diff.substr(pos) << endl;
	}
}
int main(int argc, char* argv[])
{
	unsigned n;
	cin >> n;
	while (n--)
	{
		string a, b;
		cin >> a >> b;
		ctb::fool_sub(a, b);
	}
	return EXIT_SUCCESS;
}